<template>
	<view class="app">
		<view class="main-wrap" :class="{show: loaded}">
			<view class="express">
				<view class="top row">
					<view class="picture">
						<image class="img" mode="aspectFill" :src="data.logo"></image>
					</view>
					<view class="text">
						<view class="text1">{{ data.name }}</view>
						<view class="text2">官方电话 {{ data.phone || '' }}</view>
					</view>
				</view>
				<view class="right">
					<view class="text">快递单号 {{ logistic_code || '' }}</view>
				</view>
			</view>
			
			<!-- 收货地址 -->
			<view class="content bgf">
				<view>
					<view class="flex list">
						<view class="time"></view>
						<view class="info fill">
							<view class="title address">[收货地址]{{ address }}</view>
						</view>
					</view>
					<!-- 列表 -->
					<view class="flex list" 
						:class="{one: index == 0, sended: data.state == 3}" 
						v-for="(item, index) in list"
						:key="index"
					>
						<view class="time">
							<view class="day">{{item.timeArr[0]}}</view>
							<view>{{item.timeArr[1]}}</view>
						</view>
						<view class="info fill">
							<view class="title">{{index == 0 && data.state == 3  ? '已签收' : '配送中'}}</view>
							<view class="text">{{item.context}}</view>
						</view>
					</view>
				</view>
			</view>
		</view>
		
		<mix-loading v-if="isLoading" :type="2"></mix-loading>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				address: '',
				logistic_code: '',
				data: {},
				list: []
			}
		},
		async onLoad(options) {
			const {address, order_id, logistic_code, shipper_code} = options;
			
			this.address = address;
			this.logistic_code = logistic_code;
			const res = await this.$request('order', 'getExpressInfo', {
				order_id,
				shipper_code,
				logistic_code
			}, {showLoading: true})
			if(res.status === 1){
				this.data = res.data;
				const list = res.data.data;
				list.forEach(item=>{
					item.timeArr = item.time.split(' ');
				})
				this.list = list;
			}else{
				this.$util.msg(res.msg);
				setTimeout(()=>{
					uni.navigateBack();
				}, 1000)
			}
		}
	}
</script>

<style>
	page{
		background-color: #F6F7F8;
	}
</style>
<style lang="scss" scoped>
	.app {
		padding-bottom: 4rpx;
		font-size: 24rpx;
	}
	.main-wrap{
		opacity: 0;
		transition: .2s;
		
		&.show{
			opacity: 1;
		}
	}
	/*flex 转换成flex容器*/
	.flex {
		display: flex;
		flex-direction: row;
	}

	/*flex1 自动填充*/
	.flex1 {
		flex: 1;
	}

	/*ali-c 竖直居中*/
	.ali-c {
		display: flex;
		flex-direction: row;
		align-items: center;
	}

	.bgf {
		background-color: #fff;
	}

	.express {
		//圆通快递
		background-color: #ffffff;
		border-radius: 12rpx;
		margin: 20rpx;

		.top {
			padding: 28rpx 29rpx 25rpx 29rpx;

			.img {
				display: block;
				width: 80rpx;
				height: 80rpx;
				border-radius: 12rpx;
			}

			.text {
				margin-left: 20rpx;

				.text1 {
					margin-bottom: 6rpx;
					font-size: 28rpx;
					color: #333;
				}

				.text2 {
					font-size: 20rpx;
					color: #999;
				}
			}
		}

		.right {
			background-color: rgba(8, 175, 254, 0.04);
			border-radius: 0rpx 0rpx 20rpx 20rpx;
			padding: 15rpx 30rpx 20rpx 30rpx;

			.text {
				color: #666666;
				font-size: 22rpx;
			}
		}
	}

	//收货地址
	.content {
		margin: 20rpx;
		padding: 40rpx 46rpx 10rpx 0;
		border-radius: 12rpx;

		.list {
			&:first-child {
				
				.info::before {
					bottom: -20rpx;
					margin-top: 40rpx;
					border-left: 1px dashed #e5e5e5;
				}

				.title {
					margin-bottom: 56rpx;
					font-weight: 700;
					line-height: 1.6;

					&::before {
						margin: 0;
						width: 46rpx;
						height: 46rpx;
						left: -23rpx;
						background: url('') no-repeat center;
						background-size: 46rpx 46rpx;
					}
				}
			}

			&:last-child {
				.info::before {
					height: 32rpx;
				}
			}

			&.one {
				.info::before {
					margin-top: 20rpx;
				}

				.title {
					color: #1a1a1a;
					font-weight: 700;
					
					&::before{
						width: 16rpx;
						height: 16rpx;
						left: -6rpx;
						background-color: $base-color;
					}
					&:after{
						content: '';
						position: absolute;
						width: 28rpx;
						height: 28rpx;
						left: -12rpx;
						top: 0;
						bottom: 0;
						background-color: $base-color;
						opacity: .3;
						border-radius: 100rpx;
						margin: auto 0;
						z-index: 1;
					}
				}
				&.sended{
					.title {
						&::before {
							width: 46rpx;
							height: 46rpx;
							left: -23rpx;
							background: url('') no-repeat center;
							background-size: 46rpx 46rpx;
						}
						&::after{
							display: none;
						}
					}
				}

				.text {
					color: #666;
				}

				.time {
					color: #333;

					.day {
						font-size: 24rpx;
					}
				}
			}
		}

		.time {
			width: 200rpx;
			padding-right: 30rpx;
			font-size: 20rpx;
			text-align: right;
			color: #999;

			.day {
				margin-bottom: 4rpx;
			}
		}

		.info {
			position: relative;
			padding-top: 12rpx;
			color: #999;

			&::before {
				content: "";
				position: absolute;
				left: 0;
				top: 0;
				bottom: 0;
				z-index: 1;
				width: 0;
				border-left: 1px solid #e5e5e5;
			}

			.title {
				position: relative;
				margin-bottom: 10rpx;
				padding-left: 32rpx;
				font-size: 28rpx;

				&::before {
					content: "";
					position: absolute;
					left: -3px;
					top: 0;
					bottom: 0;
					z-index: 1;
					width: 7px;
					height: 7px;
					margin: auto 0;
					border-radius: 50%;
					background-color: #cecece;
				}

				&.address {
					font-size: 28rpx;
					color: #333;
				}
			}

			.text {
				padding: 0 0 30rpx 32rpx;
				line-height: 1.5;
			}
		}
	}
</style>
